home *** CD-ROM | disk | FTP | other *** search
/ PC Home 138 / PC Home issue 138.iso / Software / Essentials / Netscape / langenus.xpi / install.js
Encoding:
JavaScript  |  2003-02-08  |  5.7 KB  |  194 lines

  1. // this function verifies disk space in kilobytes
  2. function verifyDiskSpace(dirPath, spaceRequired)
  3. {
  4.   var spaceAvailable;
  5.  
  6.   // Get the available disk space on the given path
  7.   spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  8.  
  9.   // Convert the available disk space into kilobytes
  10.   spaceAvailable = parseInt(spaceAvailable / 1024);
  11.  
  12.   // do the verification
  13.   if(spaceAvailable < spaceRequired)
  14.   {
  15.     logComment("Insufficient disk space: " + dirPath);
  16.     logComment("  required : " + spaceRequired + " K");
  17.     logComment("  available: " + spaceAvailable + " K");
  18.     return(false);
  19.   }
  20.  
  21.   return(true);
  22. }
  23.  
  24. // this function deletes a file if it exists
  25. function deleteThisFile(dirKey, file)
  26. {
  27.   var fFileToDelete;
  28.  
  29.   fFileToDelete = getFolder(dirKey, file);
  30.   logComment("File to delete: " + fFileToDelete);
  31.   if(File.isFile(fFileToDelete))
  32.   {
  33.     File.remove(fFileToDelete);
  34.     return(true);
  35.   }
  36.   else
  37.     return(false);
  38. }
  39.  
  40. // this function deletes a folder if it exists
  41. function deleteThisFolder(dirKey, folder, recursiveDelete)
  42. {
  43.   var fToDelete;
  44.  
  45.   if(typeof recursiveDelete == "undefined")
  46.     recursiveDelete = true;
  47.  
  48.   fToDelete = getFolder(dirKey, folder);
  49.   logComment("folder to delete: " + fToDelete);
  50.   if(File.isDirectory(fToDelete))
  51.   {
  52.     File.dirRemove(fToDelete, recursiveDelete);
  53.     return(true);
  54.   }
  55.   else
  56.     return(false);
  57. }
  58.  
  59. // OS type detection
  60. // which platform?
  61. function getPlatform()
  62. {
  63.   var platformStr;
  64.   var platformNode;
  65.  
  66.   if('platform' in Install)
  67.   {
  68.     platformStr = new String(Install.platform);
  69.  
  70.     if (!platformStr.search(/^Macintosh/))
  71.       platformNode = 'mac';
  72.     else if (!platformStr.search(/^Win/))
  73.       platformNode = 'win';
  74.     else
  75.       platformNode = 'unix';
  76.   }
  77.   else
  78.   {
  79.     var fOSMac  = getFolder("Mac System");
  80.     var fOSWin  = getFolder("Win System");
  81.  
  82.     logComment("fOSMac: "  + fOSMac);
  83.     logComment("fOSWin: "  + fOSWin);
  84.  
  85.     if(fOSMac != null)
  86.       platformNode = 'mac';
  87.     else if(fOSWin != null)
  88.       platformNode = 'win';
  89.     else
  90.       platformNode = 'unix';
  91.   }
  92.  
  93.   return platformNode;
  94. }
  95.  
  96. // main
  97. var srDest;
  98. var err;
  99. var fProgram;
  100. var platformNode;
  101.  
  102. platformNode = getPlatform();
  103. logComment("initInstall: platformNode=" + platformNode);
  104. // end
  105. // end - OS type detection
  106.  
  107. // ----LOCALIZATION NOTE: translate only these ------
  108. var prettyName = "English (US) Language Pack";
  109. var langcode = "en";
  110. var chromeNode = langcode + "-US";
  111. // --- END CHANGABLE STUFF ---
  112. var regName      = "locales/netscape/" + chromeNode;
  113. var chromeName   = chromeNode + ".jar";
  114. var platformName = langcode + "-" + platformNode + ".jar";
  115. var localeName   = "locale/" + chromeNode + "/";
  116.  
  117. srDest = 1089;
  118. err    = initInstall(prettyName, regName, "7.0.2.2003020809"); 
  119. logComment("initInstall: " + err);
  120.  
  121. fProgram = getFolder("Program");
  122. logComment("fProgram: " + fProgram);
  123.  
  124. if(verifyDiskSpace(fProgram, srDest))
  125. {
  126.   var chromeType = LOCALE;
  127.   err = addDirectory("",
  128.                      "bin",              // dir name in jar to extract 
  129.                      fProgram,           // Where to put this file (Returned from GetFolder) 
  130.                      "");              // Force Flag 
  131.   logComment("addDirectory() returned: " + err);
  132.  
  133.   if (err != SUCCESS)
  134.   {
  135.       logComment("addDirectory() to " + fProgram + "failed!");
  136.       // couldn't install globally, try installing to the profile
  137.       resetError();
  138.       chromeType |= PROFILE_CHROME;
  139.       fProgram = getFolder("Profile");
  140.       logComment("try installing to the user profile:" + fProgram);
  141.       err = addDirectory("","bin",fProgram,"");
  142.   }
  143.  
  144.   setPackageFolder(fProgram);
  145.  
  146.   // check return value
  147.   if (err == SUCCESS)
  148.   {
  149.       // register chrome
  150.       var cf = getFolder(fProgram, "chrome/"+chromeName);
  151.       var pf = getFolder(fProgram, "chrome/"+platformName);
  152.  
  153.       registerChrome(chromeType, cf, localeName + "global/");
  154.       registerChrome(chromeType, cf, localeName + "communicator/");
  155.       registerChrome(chromeType, cf, localeName + "messenger/");
  156.       registerChrome(chromeType, cf, localeName + "messenger-smime/");
  157.       registerChrome(chromeType, cf, localeName + "editor/");
  158.       registerChrome(chromeType, cf, localeName + "navigator/");
  159.       registerChrome(chromeType, cf, localeName + "aim/");
  160.       registerChrome(chromeType, cf, localeName + "necko/");
  161.       registerChrome(chromeType, cf, localeName + "mozldap/");
  162.       registerChrome(chromeType, cf, localeName + "autoconfig/");
  163.       registerChrome(chromeType, cf, localeName + "cookie/");
  164.       registerChrome(chromeType, cf, localeName + "wallet/");
  165.       registerChrome(chromeType, cf, localeName + "content-packs/");
  166.       registerChrome(chromeType, cf, localeName + "help/");
  167.       registerChrome(chromeType, cf, localeName + "net2phone/");
  168.       registerChrome(chromeType, cf, localeName + "pipnss/");
  169.       registerChrome(chromeType, cf, localeName + "pippki/");
  170.       registerChrome(chromeType, cf, localeName + "forms/");
  171.       registerChrome(chromeType, cf, localeName + "p3p/");
  172.  
  173.       registerChrome(chromeType, pf, localeName + "global-platform/");
  174.       registerChrome(chromeType, pf, localeName + "communicator-platform/");
  175.       registerChrome(chromeType, pf, localeName + "navigator-platform/");
  176.       // mesenger-mapi package exists only on windows.
  177.       // Register this package only for windows.
  178.       if (platformNode == "win")
  179.           registerChrome(chromeType, pf, localeName + "messenger-mapi/");
  180.  
  181.       err = performInstall(); 
  182.       logComment("performInstall() returned: " + err);
  183.   }
  184.   else
  185.   {
  186.       cancelInstall(err);
  187.       logComment("cancelInstall due to error: " + err);
  188.   }
  189. }
  190. else
  191.   cancelInstall(INSUFFICIENT_DISK_SPACE);
  192.  
  193. // end main
  194.